#include <stdio.h>
#include <stdlib.h>
#include <Math.h>

#ifndef _Defs
#define _Defs

#define _ARM
#undef _ARM

#define SAMPLE_RATE 22050									//Sample rate which is used 

#define MAX_SIGNAL_DURATION 10								//Maximum signal duration (seconds)
#define MAX_SIGNAL_LENGTH SAMPLE_RATE*MAX_SIGNAL_DURATION	//Maximum descrete values in signal

#define FURIE_MEMBERS_MAX 2048								//Maximum quantity of Furies members in one hash
#define LOG_FURIE_MEMBERS_MAX 10							//Binary log from FURIE_MEMBERS_MAX
#define MAX_FREQUENCY FURIE_MEMBERS_MAX>>1					//Upper frequency barrier of analyze
#define FURIE_MEMBERS_COUNT(x) MAX_FREQUENCY*x/SAMPLE_RATE  //Quantity of Furies members based on upper frequency barrier

#define WINDOW_COUNT 12										//Quantity of windows on the mel-scale 
#define DCT_MEMBERS 12										//Quantity of DCT members
 
#define pi 3.14159265358979323846							//Mathematic pi
#define accuracy 12											//Accuracy, Idk for what

#define true 1
#define false 0

typedef unsigned char byte;
typedef unsigned char* bytep;

typedef char sbyte;
typedef char* sbytep;

typedef unsigned long long int ulong;
typedef unsigned int uint;
typedef unsigned short ushort;

typedef struct DARRAY
{
	uint size;
	bytep data;
} DArray;


typedef struct FLOAT
{
	int mantissa;
	sbyte order;
} FloatP;
#endif
